3.5 变量

在编程中,变量是一个声明,我们通常会使用变量来存储可以改变的值。类比于数学解答中的设定方法,例如:设高度为20,这里的高度就是一个变量,它可以随时被赋值为其他值。

我们将其精简提炼后,总结为了以下几点。

常用声明方式

首先我们在YouCanGoCode目录下新建一个目录,命名为lesson2,新建一个go文件,命名为 lesson2.go

接下来,我们需要在lesson2.go文件内输入以下代码

package main

import "fmt"

func main() {
    var a string
    fmt.Println(a)
}

在代码中,我们看到var a string,这一行解释为:声明了一个string类型的变量,名称为a

也就是说我们在声明变量时,格式为:var + 变量名称 + 数据类型

变量的赋值

接下来我们执行lesson2.go文件,此时没有任何输出。这是因为我们仅仅是进行了声明,并没有进行赋值,即进行了:设:高度,而没有进行:设:高度等于20

我们在代码中加入a = "lesson2",即代码为:

package main

import "fmt"

func main() {
    var a string
    a = "lesson2"
    fmt.Println(a)
}

此时我们再执行lessong2.go可以看到如下输入:

lesson2

在上面的代码中,我们通过a = "lesson2"为变量进行了赋值,通过上面的代码,我们可以总结出如下规律:

  • 首先需要对变量进行声明
  • 其次需要对变量进行赋值
  • 如果仅仅进行声明,而没有进行赋值,那么变量输出是没有内容的

声明并同时赋值

我们已经知道,变量需要声明并赋值,才可以输出内容,在Go语言里我们可以在声明的同时进行赋值,如下代码所示:

package main

import "fmt"

func main() {
    var a string = "lesson2"
    fmt.Println(a)
}

此时我们执行lessong2.go,可以看到如下输出:

lesson2

在上面的代码中,我们将两行代码合并为了一行,即:声明的同时,通过等号=为变量进行了赋值。

不声明类型

上面我们已经介绍了两种声明方式,接下来我们将下面的代码放到lesson2.go文件中:

package main

import "fmt"

func main() {
    var a = "lesson2"
    fmt.Println(a)
}

此时我们执行lessong2.go,可以看到如下输出:

lesson2

在上面的代码中,我们去除了string,最终代码为var a = "lesson2",发现同样可以输出结果,这是因为Go语言会根据"lesson2"自动为我们匹配类型,也就不需要我们去指定类型。

不使用var声明

上面我们已经完整介绍了变量的声明与赋值,接下来我们将下面的代码放到lesson2.go文件中

package main

import "fmt"

func main() {
    a := "lesson2"
    fmt.Println(a)
}

此时我们执行lessong2.go,可以看到如下输出:

lesson2

在上面的代码中,我们去除了varstring,而是直接使用:=来进行声明,实现了声明并赋值,这也是比较常用的一种方式。

小结

我们学习了Go语言声明变量的几种方式,总结为一下几点:

  • 仅声明,不赋值
var a string
  • 声明后,再赋值
var a string
a = "lesson2"
  • 声明并同时赋值
var a string = "lesson2"
  • 取消类型声明,自行判断
var a = "lesson2"
  • 使用:=快捷声明
a := "lesson2"

其他数据类型的变量声明也同样遵循上面的几个规则,快跟随下面的代码去尝试一下吧。

package main

import "fmt"

func main() {
    a := "lesson2"
    fmt.Println(a)

    var b int = 1
    fmt.Println(b)

    var c int32 = 1
    fmt.Println(c)

    var d int64 = 1
    fmt.Println(d)

    var e float32 = 1.001
    fmt.Println(e)

    var f float64 = 1.001
    fmt.Println(f)

    var g bool = true
    fmt.Println(g)
}

执行lesson2.go代码后输入如下:

lesson2
1
1
1
1.001
1.001
true

results matching ""

    No results matching ""